package com.example.design.shejimoshi.structure.qiaojie.反例;

import java.util.List;

/**
 * 每个 if-else 分支中的代码逻辑都比较复杂，发送通知的所有逻辑都扎堆在 Notification 类中。
 * 我们知道，类的代码越多，就越难读懂，越难修改，维护的成本也就越高。
 * 很多设计模式都是试图将庞大的类拆分成更细小的类，然后再通过某种更合理的结构组装在一起。
 */
public class Notification {
    private List emailAddresses;
    private List telephones;
    private List wechatIds;

    public Notification() {
    }

    public void setEmailAddress(List emailAddress) {
        this.emailAddresses = emailAddress;
    }

    public void setTelephones(List telephones) {
        this.telephones = telephones;
    }

    public void setWechatIds(List wechatIds) {
        this.wechatIds = wechatIds;
    }

    public void notify(NotificationEmergencyLevel level, String message) {
        if (level.equals(NotificationEmergencyLevel.SEVERE)) {
            //...自动语音电话
        } else if (level.equals(NotificationEmergencyLevel.URGENCY)) {
            //...发微信
        } else if (level.equals(NotificationEmergencyLevel.NORMAL)) {
            //...发邮件
        } else if (level.equals(NotificationEmergencyLevel.TRIVIAL)) {
            //...发邮
        }
    }
}